

COMMON_DIR = $(XBASE_HOME)/src/common
TABLET_SERVER_DIR = $(XBASE_HOME)/src/tablet_server

INCS = -I$(COMMON_DIR)
LIBS = -lgfsclient -lappframe -lxsocket -lxthread -lboost_system	\
-lboost_thread -lgtest -llog4cplus -lpthread -lz
FLAGS = -ggdb -Wall -DLOGGER -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
# -DUSE_GFS -DNDEBUG_BLOCK_CACHE
# -D_SHOW_DETAIL_
# -DNDEBUG

TEST_CASE_MODULES = test_sstable_block_cache test_sstable test_byteorder

TEST_CASE_OBJS = test_sstable_block_cache.o				\
$(TABLET_SERVER_DIR)/sstable_block_cache_base.o				\
$(TABLET_SERVER_DIR)/sstable_block_cache_manager.o test_sstable.o	\
$(TABLET_SERVER_DIR)/sstable.o $(COMMON_DIR)/logger.o		\
$(COMMON_DIR)/minilzo/minilzo.o $(COMMON_DIR)/quicklz/quicklz.o		\
$(COMMON_DIR)/quicklz/quicklz.o $(COMMON_DIR)/bmz/bmz.o test_byteorder.o

%.o:%.cpp
	g++ -c -o $@ $< $(FLAGS) $(INCS)

.PHONY:all run list clean

all:$(TEST_CASE_MODULES) test

test:test.o $(TEST_CASE_OBJS)
	g++ -o $@ $^ $(FLAGS) $(LIBS)

run:
	@./test --gtest_color=true --gtest_output=xml:./test_report.xml
# --gtest_filter=<regex>

list:
	@./test --gtest_list_tests

# modules
$(TEST_CASE_MODULES):$(TEST_CASE_OBJS)
	@echo modules $@ compiled

clean:
	rm -rf $(TEST_CASE_OBJS) test
